﻿ 
//
// *************************************************************************************
// WP-Framework
// 
// Developed by
// Lukas Kretschmar (lkretschmar.dev@bluewin.ch)
//
// Switzerland, Copyright (c) 2013 lkretschmar
// This content is released under the MIT License (http://opensource.org/licenses/MIT).
//     
// *************************************************************************************
//
//
// ***********************************************************************************************************************************
// NOTICE!!
// This content is auto-generated. Any changes will be overriden the next time the template is changed or the custom-tool is executed.
// Generated at: 29.05.2013 23:54
//
// ***********************************************************************************************************************************

using System;
using System.Reflection;
using KretschIT.WP_Fx.EasyMoq;
using KretschIT.WP_Fx.EasyMoq.Generator;

namespace EasyMoq.Mocking
{
	#region Registration

	[EasyMoqRegistration]
	public sealed class EasyMoqInit : IEasyMoqRegistration
	{
		public void Register(IMockFactoryRegistration factory)
		{
			factory.Register<KretschIT.WP_Fx.UI.Commands.IRelayCommand, RelayCommandMockable>(() => new RelayCommandMockable());
        }
	}

	#endregion

	#region RelayCommandMockable

	class RelayCommandMockable : Mockable<KretschIT.WP_Fx.UI.Commands.IRelayCommand>, KretschIT.WP_Fx.UI.Commands.IRelayCommand
	{
		#region Events

 
		public event System.EventHandler CanExecuteChanged;

		public void RaiseCanExecuteChangedEvent(System.Object sender, System.EventArgs e)
		{
			if(this.CanExecuteChanged != null)
			{
				this.CanExecuteChanged(sender, e);
			}
		}

 
		#endregion

		#region Methods

		public void RaiseCanExecuteChanged()
		{
			this.Handler.Call(m => m.RaiseCanExecuteChanged());
		}

		public System.Boolean CanExecute(System.Object parameter)
		{
			return this.Handler.Call(m => m.CanExecute(parameter));
		}

		public void Execute(System.Object parameter)
		{
			this.Handler.Call(m => m.Execute(parameter));
		}

 
		#endregion

		#region Properties

		#endregion
	}
	
	#endregion

}

